Fixed: EXTINPUT functions return 0 if ESC pushed (all changes are ignored).

FAST: v1.98  Date: 01/03/89

Fixed: #TRACE ON/OFF was implemented and FASTT is a new program to run compiled
       code while showing source code.

FAST: v2.00  Date: 06/01/89

Fixed: SEARCH[B] produces shorter code.

FAST: v2.01  Date: 09/01/89

Fixed: SEARCH[B] returned 0 for last item, now it returns proper address
       (long time bug, not caused by v2.01).
     - The NULL command has been added to do nothing but fill a space where a
       command is needed but not wanted.

FAST: v2.02  Date: 17/01/89

Fixed: Added #entry command to set code entry point.
       Added modify command: modify segment to new_paragraphs.

FAST: v2.03  Date: 05/02/89

Fixed: Fixes print tab and print , didn't tab 8 or 16 characters.

FAST: v2.04  Date: 09/01/89

Fixed: The function carry has been added, 1=carry set else 0.
     - Added #short and #long. All code compiled while #short is set
       will produce short jumps in IF THEN ELSE statements. The
       default is long. The error 'Code exceeds short jump range!'
       will occur if the code is too long.

FAST: v2.05  Date: 12/02/89

Fixed: Windows now checks for enough free memory or else 'error 8'

FAST: v2.06  Date: 13/02/89

Fixed: close window - if none gives error 6 ('invalid handle').
       open window  - if 20 windows open already then error 4
       ('no more handles').

FAST: v2.07  Date: 14/02/89

Fixed: Extended the var data type, unsigned is a subset.
       Example... UNSIGNED address;   Effects < > >= <= only.

FAST: v2.08  Date: 19/02/89

Fixed: #SHORT and #LONG automatically match correctly at the end of IF THEN
       ELSE blocks.
     - Add PRINTM command: printm address,len to print the memory in ascii at
       address onto the screen at LOCPOS. The line is cleared to a length of
       len characters. Used in WT and FASTT.

FAST: v2.09  Date: 22/02/89

Fixed: Add ON TRACE/DEBUG and STOP TRACE/DEBUG.
       on trace statement - called by FASTT.
       on debug statement - called for every debugged line.

FAST: v2.10  Date: 23/02/89

Fixed: Signed variables, now work in all cases.

FAST: v2.11  Date: 27/02/89

Fixed: Unsigned variables (didn't have fixed before).

FAST: v2.13  Date: 01/03/89

Fixed: Problems with FAST giving wrong error messages.
     - Improve 32 bit arithmetic.

FAST: v2.14  Date: 02/03/89

Fixed: Optimize block commands when in same segment.

FAST: v2.15  Date: 03/03/89

Fixed: ERROR MSG command automatically prints 'Error n [DOS=n]' when it gets an
       error of its own. DOS=n is the error then error msg got.

FAST: v2.16  Date: 07/03/89

Fixed: PRINTM function now ignores line feeds (10).
     - Add #SETDOS n.xx command, FAST now compiles your programs so
       they check for the correct DOS version.
       The default is 2.00 but if special FAST commands are used or
       the user specifies another version then that version or higher
       must be present to work. #SETDOS cannot be lower than what
       FAST requires. Example... #SETDOS 3.30

FAST: v2.17  Date: 09/03/89

Fixed: Add IRET and RETF commands - same as assembler.
       Useful when writing own interupt handlers etc.
     - Renamed SETVECT and GETVECT to SETINT and GETINT.

FAST: v2.18  Date: 11/03/89

Fixed: Add STOP command - synonomous with TERMINATE.
     - PRINT DOS is now valid, earlier documentation said PRINT DOS but only
       PRINT BIOS was available. Now PRINT DOS is valid -
       both print using the DOS standard io.
     - SEEK #n,EOF  ;same as seek to end of file.

FAST: v2.19  Date: 19/03/89

Fixed: PROC[EDURE] and FUNCTION are now treated the same.
       This means a function can be used as a command and a procedure can be
       used as a function. When either is used as a command this means the
       RETURN value will be ignored.

FAST: v2.20  Date: 27/03/89

Fixed: PRINTM address,len [,0]  adding ,0 means PRINTM does not overwrite the
       current colour on the screen.
     - When window commands get an error they leave the address from within the
       code that the window command was called from rather than the library
       address.
       Note: OPEN WINDOW & CLOSE WINDOW[S] are libraries built invisibly into
             the FAST compiler.

FAST: v2.21   Date: 29/03/1989

Fixed: Fixed compiler setting of video adapter.
     - ERROR MSG prints correct DOS error for all errors.
     - Shorten code for all error handling, created two internal libraries.

FAST: v2.22   Date: 30/03/1989

Fixed: HGRAPHICS command now installed.

Fix the PLOT, LINE and SPRITE routines!

FAST: v2.23   Date: 02/04/1989

Fixed: Error handling didn't handle properly since last change, now works ok.

FAST: v2.25   Date: 12/04/1989

Fixed: PRINT "stuff" ELSE - didn't print the CR character for newline.
     - Some of the FAST Compilers screen output.

FAST: v2.26   Date: 17/04/1989

Fixed: GETINT and SETINT use hex numbers (same as DOS and INT).
       Eg SETINT 21 TO address ;Means 21h (33 decimal).

FAST: v2.27   Date: 25/04/1989

Fixed: MODE function is now called SCREEN, since corresponds to the SCREEN
       command.
     - The SCREEN function was changed to SCRCHR y,x.

FAST: v2.29   Date: 29/04/1989

Fixed: Tidied up some FAST code and removed the FAST maintenance BEEP option,
       this was only setup becase FAST used to be a slowish compiler.

FAST: v2.30   Date: 01/05/1989

Fixed: Added the INDOSS and INDOSO functions, these are for TSR programs.
       INDOSS returns the segment of the INDOS flag, INDOSO returns the offset.
       If you override an interupt and test the INDOS flag within the
       interupt it will return 0 if DOS is not being used.
       Note: When DOS awaits a command it is in DOS but IDLE.
     - Added ON IDLE and STOP IDLE, now you can perform tasks while DOS is idle.

       ON IDLE does what the original IDLE interupt did then does the new task.
       STOP IDLE resets the IDLE interupt to what it did before using ON IDLE.

Note: The INDOSS and INDOSO functions use DOS functions so must not be used
      within an interupt, instead at program initialsation set two variables
      = to each function. Then within the interupt test the INDOS flag by using
            "IF seg[off]b THEN where_using_dos"

FAST: v2.31   Date: 03/05/1989
Fixed: Added the PSP command and function.
       PSP n    ;Sets the current PSP to segment n.
       var=PSP  ;Returns the current PSP segment.

       Note: PSP = Program Segment Prefix.

FAST: v2.32   Date: 04/05/1989
Fixed: All variables, arrays and long variables (eg VAR ? 200) are aligned on
       word boundaries, this makes the programs run faster when using the
       16 or 32 bit chips (ie 80286, 386, 486 ...).
       This also means the long variables defined using VAR ? 200 will always
       use the highest even number.

       Example...
            x=0
            y ? 201
            z=20

            x is stored at 0800h
            y is stored at 0802h        0800h + 2 bytes.
            z is stored at 08CCh        0802h + 202 bytes (rounded up from 201)

FAST: v2.33   Date: 06/05/1989
Fixed: Now checks the 64K limit more efficiently, only one error message occurs
       which says exceeded the 64K limit.

FAST: v2.34   Date: 08/05/1989
Fixed: PRINTM function now prints line feeds, only skipping over it when
       followed by a carriage return.
     - Most undefined constants will now compile ok but the warning 'Undefined
       label (0 used).' will be printed. All occurrences of the label will
       represent the constant 0.

FAST: v2.35   Date: 14/05/1989
Fixed: Completed ON TRACE handling by the program FASTT and also ON DEBUG is
       now compiled properly: each line calls the current ON DEBUG statement.

FAST: v2.36   Date: 15/04/1989
Fixed: Added CHANGE DISK command, changes default drive to b (a number from 0
       for A: to the last drive).
     - Added CDISK function for checking which drive is the default, 0 for A:,
       1 for B: etc...

FAST: v2.37   Date: 24/05/1989
Fixed: Added more optimisations to the POKE command, now produces even tighter
       code.
     - Fixed long time bug where FAST did not recognise end of file when the
       eof (26) character was missing.

FAST: v2.38   Date: 28/05/1989
Fixed: Change LPRINT commands to use the BIOS interupt 17h rather then through
       DOS, this allows quicker printing but mainly allows programs to easily
       intercept the printer output.

FAST: v2.39   Date: 29/05/1989
Fixed: Tiny fixups and speed improvements.

FAST: v2.40   Date: 07/06/1989
Fixed: Added the function FINDBIN, it has the same syntax as the include file,
       FINDBIN.F. All ocurrences of FIND_BIN should be changed to FINDBIN and
       the #INCLUDE FINDBIN.F commands should be deleted.

Note ! The FINDBIN function still sets the find_bin_put variable but no other
       variables are used.

FAST: v2.41   Date: 20/06/1989
Fixed: Findbin needed more improvements.

FAST: v2.42   Date: 21/06/1989
Fixed: ON IDLE command for TSR programs was 'slightly' bugged, when some
       programs loaded they called the wrong long interupt vector.

Note ! The source file TSR.F has been included now as a skeleton for any TSR
       program you may wish to write, PU.F uses the same design.

FAST: v2.43   Date: 25/06/1989
Fixed: CALL, JUMP and USR can now use any address (offset, or segment|offset).
       The segment and offset can also be any expression, not just constants.

FAST: v2.44   Date: 26/06/1989
Fixed: The /h option has been added to the FAST and SOFA command line, for
       help. At the moment it only contains a few command reminders.
     - The FAST and SOFA command line can now have a semi-colon appended to the
       filename which will suppress all prompts before compiling.
       Example, FAST WT;  compiles WT, doesn't ask for source or symbol table
       listing.

FAST: v2.46   Date: 05/08/1989
Fixed: The warning message 'Unexpected end of file' has been changed to now
       give a reason, for example, Missing NEXT or IF-THEN-ELSE not finished,
       there are 9 such warnings now to describe unfinished programs.
     - Reminder, FAST can accept double declarations of variables using VAR
       or UNSIGNED, a check is made to see that a signed variable is not
       changed to an unsigned one, this would generate an error.

FAST: v2.47   Date: 06/08/1989
Fixed: Added FAST.CFG file, if its not found in the current directory then the
       defaults are used. FAST /m will save it automatically after altering
       the FAST defaults.

FAST: v2.48   Date: 22/08/1989
Fixed: FAST /? or FAST /h is now valid.
     - FAST and SOFA now print source listings with leading zeros and lines
       are seperated with the filename - it has made a nicer looking list
       file.
     - Most of the include files have been changed to .FI files.
     - The log file has been implemented. No command line option is used,
       you set whether you want log files or not using 'FAST /m'
       I think this idea of yours was great, I have often needed to know
       when I last compiled a program and whether the compile worked or not.
       The file is called SOFA.LOG or FAST.LOG and is always put into the
       current disk/path.

FAST: v2.49   Date: 28/08/1989
Fixed: There was confusion between putting commands on the same line as labels,
       this problem is now solved: You can always put a command after a label
       without getting an error.
       Note: Sometimes a programmer misspelled a procedure or command name.
       For example 'high_score:explosion'. If the procedure high_score was
       actually high_scores then FAST may have given an error or it may have
       compiled high_score as a label. Now it will always compile it as a
       label (well at least it's consistent).

       The best way to check for labels and procedure problems is to check
       the symbol table every so often and look for strange label or procedure
       names.

FAST: v2.51   Date: 11/09/1989
Fixed: The TSR programs had a small error which could effect operation if
       activated once using the idle interupt then again using on int.
       All TSR's should set the internal variable IHERE = 1 when starting
       ON IDLE and reset when finished, alternatively set the IHERE variable
       when executing the "program" procedure and when exiting it.

     ! Communications commands have been installed, they are different from
       the original design plans.
       For full details, search for "serial" and/or "communications".

FAST: v2.52   Date: 20/09/1989
Fixed: STOP IDLE had a bug, reset interupt all wrong. Works now though.

     - Still working on serial coms commands, nobody on the Wellington BBS's
       has any info as yet. I've got info on XMODEM and YMODEM so these
       functions will be provided in a my terminal emulator: PHONE.F

FAST: v2.54   Date: 26/09/1989
Fixed: The HGRAPHICS command was ignored before, it should work now.

     - A new command, #PROTECT can be added anywhere in a program so that when
       run it will check itself for viruses attached to the .COM file.
       #PROTECT should discover any virus. If you get the message about the
       change in a files size then you will have to eradicate the virus.
       This can be done by first booting off a clean floppy, then recompiling
       all FAST programs. All your other .COM, .EXE and boot sectors etc will
       need thorough checking to avoid recurring problems.

     - The pipe (|) symbol used for segment:offset notation can now be
       optionally changed to the exclamation mark (!).
       This option is provided so that users of Gestetner laser printers
       can now print their source files without hassles.
       Use FAST /m and push ! when asked 'Segment:Offset |/!', globally
       replace | with ! using WT.

FAST: v2.55   Date: 11/10/1989
Fixed: Serial communications are now working properly, even if limited.
       See SERIAL_SEND, ENABLE SERIAL, DISABLE SERIAL and SERIAL_STATUS

FAST: v2.56   Date: 22/10/1989
Fixed: Speed. Somebody alerted me that Borland's new Turbo C was faster when
       doing the sieve benchmark - this problem has now been fixed.

       PS: FAST produced a runable file 32 times less the size of C's.

FAST: v2.57   Date: 18/11/1989
Fixed: Fixed error message when the quote character was missing from the
       PRINT command.

FAST: v2.58   Date: 26/11/1989
Fixed: The MOD function gave the wrong answer when the divsor was not a
       numeric constant or a variable.
     - Undefined procedures now produce an error, only Syntax error but at
       least it's something.

FAST: v2.59   Date: 22/03/1990
Fixed: Short jumps that exceeded the short jump range didn't always give an
       error, fixed now.

FAST: v2.61   Date: 23/09/1990
Fixed: Bug in WT.F, would not remove files properly when more than 7 files
       were in memory.
     - When passing a parameter to a procedure or function which happens to be
       a variable the same as declared in the procedure or function then no
       code is produced, previously the code
                MOV AX,[var]
                MOV [var],AX   was produced, clearly a waste of time and space.

FAST: v2.62   Date: 09/10/1990
Fixed: Windows only 1 line deep didn't print properly.

FAST: v2.63   Date: 24/10/1990
Fixed: The '.' function eg (.variable) gives the address of the variable,
       now it also gives the addresses for functions and procedures.

FAST: v2.64   Date: 29/10/1990
Fixed: FAST now checks if the last instruction before a 'return' was a CALL
       instruction, such as calling a procedure or a gosub command. If it was
       then FAST changes the CALL to a JMP instruction, increasing speed.

FAST: v2.65   Date: 10/11/1990
Fixed: FAST already optimises multiplication if multiplying by a constant
       between 1 and 10. Now it also optimises *256.
       Eg, instead of MOV BX,256   now its MOV AH,AL
		      MUL BX		   SUB AL,AL

FAST: v2.66   Date: 14/11/1990
Fixed: print bios tab - printed a backspace character, not a tab character.

FAST: v2.67   Date: 27/11/1990
